package com.baihan.angus.app.game.common.configs;

import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;

import com.baihan.angus.app.game.basic.BaseApplication;
import com.baihan.angus.app.game.common.bean.response.Userinfo;
import com.google.gson.Gson;

public class UserConfig {

    private static UserConfig appConfig;
    private Userinfo user;

    private UserConfig() {
    }

    public static UserConfig getUserConfig() {
        if (appConfig == null) {
            appConfig = new UserConfig();
        }
        return appConfig;
    }

    private SharedPreferences getSP() {
        return BaseApplication.getApplication().getSharedPreferences("userConfig", Context.MODE_PRIVATE);
    }

    /**
     * 保存登录获取的票据
     */
    public void saveAppToken(String token) {
        getSP().edit().putString("appToken", token).apply();
    }

    /**
     * 获取保存的cas登录获取的票据
     */
    public String getSavedAppToken() {
        return getSP().getString("appToken", "");
    }

    /**
     * 保存usersig
     */
    public void saveUserSig(String userSig) {
        getSP().edit().putString("userSig", userSig).apply();
    }

    /**
     * 获取保存的usersig
     */
    public String getSavedUserSig() {
        return getSP().getString("userSig", "");
    }

    /**
     * 保存单一用户信息
     */
    public void saveUserStr(String tag, String str) {
        getSP().edit().putString(tag, str).apply();
    }

    /**
     * 获取单一用户信息
     */
    public String getSavedUserStr(String tag) {
        return getSP().getString(tag, "");
    }

    /**
     * 保存用户
     *
     * @param user
     */
    public void saveUser(Userinfo user) {
        this.user = user;
        String userJson = new Gson().toJson(user);//暂时不做加密处理
        getSP().edit().putString("user", userJson).apply();
    }

    /**
     * 获取用户
     */
    public Userinfo getUser() {
        return this.user;
    }

    /**
     * 清空
     */
    public void clear() {
        user = null;
        getSP().edit().clear().apply();
    }

    /**
     * 初始化用户  尽早调用  可以在app启动界面调用
     */
    public void initUser() {
        if (user == null) {
            String userJson = getSP().getString("user", "");
            if (!TextUtils.isEmpty(userJson)) {
                Userinfo user = new Gson().fromJson(userJson, Userinfo.class);
                this.user = user;
            }
        }
    }


}
